home *** CD-ROM | disk | FTP | other *** search
- /*
- N O T B O O L E . C
- */
-
- #include "iccomp.h"
-
- ESTRUC_ *not_boolean(e)
- ESTRUC_
- *e;
- {
- unsigned
- len,
- *list;
-
- if (test_type(e, e_const)) /* immediate value */
- {
- e->evalue = !(test_type(e, e_str) || e->evalue);
- set_type(e, e_int | e_const);
- }
- else
- {
- fetob(e);
-
- len = e->truelen; /* cross the links */
- e->truelen = e->falselen;
- e->falselen = len;
-
- list = e->truelist;
- e->truelist = e->falselist;
- e->falselist = list;
- }
- return (e);
- }